File replication is widely employed in data storage, e.g., data distribution and file sharing systems. Examples of distributed file system protocols and/or services include the Andrews File System (AFS), Distributed Computing Environment (DCE), Distributed File System (DFS), Lustre, the General Parallel File System (GPFS), Coda, etc. Examples of network file systems and protocols include Network File System (NFS), Common Internet File System (CIFS), Network for Protocol (NCP). Distributed file systems and network file systems generally include intrinsic organizing structures such as hierarchical namespace control (e.g., nested files and directories, junctions, etc.). These kinds of file systems also include well-defined file access and concurrent sharing semantics, as well as consistency guarantees that are generally difficult to implement in combination with replication.
In distributed file system protocols, support for replication is typically implemented transparently between data servers or storage systems, with limited involvement by clients. However, infrastructure and architectural limitations of distributed file systems limit replication capabilities. For example, in file systems employing server-to-server replication, replication performance is strongly limited by bandwidth between cooperating data servers.